<?php

function add_LUR( $usuario = "", $clave = "", $nom_role = "", $bd = "", $usu = "", $cla = "" ) {
	
	// Valida que todas las variables tenga información
	if ( $usuario == "" || $clave == "" || $nom_role == "" || $bd == "" || $usu == "" || $cla == "" ) {
		return 1;	// Error: una de las varibles esta en blanco
	}
	
	// Creamos una conexión a la BD 
	$conexion 	= new EnlaceBD;
    $var 		= $conexion->conectar( $_SESSION['db_portal'] );
	
	// Parseamos las Bases de Datos del Usuario
	$bds	= split( ",", $bd );
	$cant2	= count( $bds );
	
	if ( $cant2 < 1 ) {
		return 7;	// Error en la variable de las bases de datos
	} else {
		
		$sql 	= "exec sp_addlogin '$usuario', '$clave', '".$bds[0]."'";
		
		$respuesta = $conexion->consultar($sql) 
			or die("No se pudo agregar el Login.");
			
		$temparray = $respuesta->buscar_fila();
		
		if ( $temparray == 'New login created.' ) {
			// TODO BIEN - LOGIN CREADO EN LA BD
		} else {
			$conexion->desconectar;
			return 2;	// Error: El Login ya existe
		}
		
		for ( $ii = 0; $ii <= ($cant2-1); $ii++ ) {
			//	Creamos el Usuario en la BD
			$sql 	= "USE ".$bds[$ii]." exec sp_adduser '$usuario'";
			
			$respuesta = $conexion->consultar($sql) 
				or die("No se pudo agregar el Usuario.");
			
			$temparray = $respuesta->buscar_fila();
			
			if ( $temparray == 'New user added.') {
				// TODO BIEN - USUARIO CREADO EN LA BD
			} else {
				$conexion->desconectar;
				return 3;	// Error: El Usuario ya existe
			}
		}
	}
	
	
	// AGREGAMOS LOS ROLES
	
	// Parseamos los roles del Usuario
	$roles 	= split( ",", $nom_role );
	$cant	= count( $roles );
	
	if ( $cant < 1 ) {
		return 6;	// Error: la variable de los Roles es vacia
	} else {
		for ( $ii = 0; $ii <= ($cant-1); $ii++ ) {
			
			// Agregamos el role al usuario
			$sql 	= "exec sp_role 'grant', '".$roles[$ii]."', '$usuario'";
			
			$respuesta = $conexion->consultar($sql) 
				or die("No se pudo agregar el Rol.");
			
			$temparray = $respuesta->buscar_fila();
			
			if ( $temparray == 'Authorization updated.' ) {
				// TODO BIEN - ROL AGREGADO AL USUARIO
			} else {
				$conexion->desconectar;
				return 4;	// Error al Agregar el Rol
			}
			
			
			// Activamos el role agregado al usuario
			$sql 	= "exec sp_modifylogin '$usuario', 'add default role', '".$roles[$ii]."'";
			
			$respuesta = $conexion->consultar($sql) 
				or die("No se pudo activar el Rol.");
			
			$temparray = $respuesta->buscar_fila();
			
			if ( $temparray == 'Option changed.' ) {
				// TODO BIEN - ROL ACTIVADO
			} else {
				$conexion->desconectar;
				return 5;	// Error al Activar el Rol
			}
		}
	}
	
	$conexion->desconectar;
	return 0;
	
	// =====================================================================================================
	// 	Leyenda de Errores
	// =====================================================================================================
	
	//	return 1 = Error, una de las varibles esta en blanco...
	//	return 2 = Error, el Login ya existe (A user with the specified login name already exists.)...
	//	return 3 = Error, el Usuario ya existe...
	//	return 4 = Error, error al Agregar el Role...
	//	return 5 = Error al Activar el Role...
	//	return 6 = Error en la variable de los Roles...
	//	return 7 = Error en la variable de las Bases de Datos...
	//	return 0 = OK...
}
?>